package com.jintian.smart.kernel.flowable.domain.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.beetl.sql.annotation.entity.Column;
import org.beetl.sql.annotation.entity.Table;

import java.io.Serializable;
import java.util.Date;

/**
 *
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(name = "", description = "Task对象")
@Table(name = "ACT_HI_TASKINST")
public class ActHiTaskInst implements Serializable {
    private static final long serialVersionUID = 1L;

//    @ApiModelProperty("任务Id")
    @Column(name = "id_")
    private String id;

//    @ApiModelProperty("业务对象Id")
    @Column(name = "bizId")
    private String bizId;

//    @ApiModelProperty("流程实例Id")
    @Column(name = "proc_inst_id_")
    private String processInstanceId;

//    @ApiModelProperty("标题")
    @Column(name = "bizTitle")
    private String bizTitle;

//    @ApiModelProperty("业务名称")
    @Column(name = "flowName")
    private String flowName;

    @Column(name = "bizAreaName")
//    @ApiModelProperty("行政区")
    private String bizAreaName;

    @Column(name = "START_TIME_")
//    @ApiModelProperty("创建时间")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

//    @ApiModelProperty("完成时间")
    @Column(name = "end_Time_")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

//    @ApiModelProperty("预期时间")
    @Column(name = "due_date_")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dueDate;

//    @ApiModelProperty("限办时间")
    @Column(name = "claim_time")
    @JsonFormat(locale = "zh", timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
    private Date claimTime;

//    @ApiModelProperty("优先级")
    @Column(name = "priority_")
    private Integer priority;

//    @ApiModelProperty("路由")
    @Column(name = "form_Key_")
    private String formKey;

//    @ApiModelProperty("分组")
    @Column(name = "category_")
    private String category;

//    @ApiModelProperty("取消原因")
    @Column(name = "delete_Reason_")
    private String deleteReason;

//    @ApiModelProperty("耗时毫秒")
    @Column(name = "duration_")
    private Long duration;

//    @ApiModelProperty("业务对象状态")
    @Column(name = "bizStatus")
    private String bizStatus;

//    @ApiModelProperty("所有人")
    @Column(name = "owner_")
    private String owner;

    @Column(name = "name_")
//    @ApiModelProperty("名称")
    private String name;

    @Column(name = "ownerAreaCode")
//    @ApiModelProperty("任务所属政区")
    private String ownerAreaCode;

//    @ApiModelProperty("分配人")
    @Column(name = "assignee_")
    private String assignee;
    @Column(name = "parent_task_id_")
    private String parentTaskId;

//    @ApiModelProperty("描述")
    @Column(name = "description_")
    private String description;

//    @ApiModelProperty("挂起状态")
    @Column(name = "suspension_state_")
    private Integer suspensionState;

//    @ApiModelProperty("环节Key")
    @Column(name = "task_def_key_")
    private String taskDefinitionKey;

//    @ApiModelProperty("流程编码")
    @Column(name = "Process_Definition_Key_")
    private String processDefinitionKey;

    public String getActivity() {
        return this.taskDefinitionKey;
    }

    public void setActivity(String value) {
        this.taskDefinitionKey = value;
    }

    public String getActivityLabel() {
        return this.name;
    }

    public void setActivityLabel(String value) {
        this.name = value;
    }

    public String getProcess() {
        return this.processDefinitionKey;
    }

    public void setProcess(String value) {
        this.processDefinitionKey = value;
    }

    public String getProcessLabel() {
        return this.flowName;
    }

    public void setProcessLabel(String value) {
        this.flowName = value;
    }

    public String getNodeName() {
        return this.name;
    }

    public void setNodeName(String value) {
        this.name = value;
    }

    // @ApiModelProperty("租户Id")
    // @Column(name = "tenant_Id_")
    // private String tenantId;
    // @ApiModelProperty("流程定义Id")
    // @Column(name = "proc_def_id_")
    // private String processDefinitionId;
    // @Column(name = "execution_id_")
    // private String executionId;
    // @Column(name = "scope_Id_")
    // private String scopeId;
    // @Column(name = "sub_Scope_Id_")
    // private String subScopeId;
    // @Column(name = "scope_Type_")
    // private String scopeType;
    // @Column(name = "scope_definition_id_")
    // private String scopeDefinitionId;

}